% 指定文件路径
filename = 'E:\缝纫机波形识别\DGIOT.csv';

% 读取文件
data = readtable(filename);

column2 = data{1:20000, 5};
data2=column2;
% 初始化一个向量来存储波峰的位置

% 我们将使用一个滑动窗口来模拟实时数据的读取和处理
% 初始化一个向量来存储波峰的位置和值
peakIndices = [];
peakValues = [];

% 创建一个图形窗口
figure;
hold on;

for i = 1:length(data2) - windowSize + 1
    % 读取窗口内的数据
    windowData = data2(i:i+windowSize-1);
    
    % 使用findpeaks函数找到窗口内的波峰
    [peaks, locations] = findpeaks(windowData);
    
    % 如果找到了波峰，打印出它们的位置和值
    if ~isempty(peaks)
        fprintf('在位置 %d 到 %d 之间找到了波峰：\n', i, i+windowSize-1);
        for j = 1:length(peaks)
            fprintf('位置: %d, 值: %d\n', i+locations(j)-1, peaks(j));
            % 存储波峰的位置和值
            peakIndices = [peakIndices, i+locations(j)-1];
            peakValues = [peakValues, peaks(j)];
        end
    end
    
    % 清除当前的图形
    clf;
    
    % 绘制所有的数据
    plot(data2, 'b');
    
    % 绘制当前窗口中的数据
    plot(i:i+windowSize-1, windowData, 'r');
    
    % 绘制已经找到的波峰
    plot(peakIndices, peakValues, 'go');
    
    % 强制MATLAB立即更新图形
    drawnow;
    
    % 暂停一会儿，以便我们可以看到图形的更新
    pause(0.1);
end

hold off;